En este ejemplo de construyen las trayectorias de un tiro parabólico que se realiza con la misma velocidad inicial pero a distintos ángulos de tiro.
Las ecuaciones que rigen el tiro parabólico que se realiza con velocidad inicial $v_{0}$ a un ángulo de tiro $\theta$ son
$$v_{0x}=v_{0}\cos\theta$$$$v_{0y}=v_{0}\sin\theta$$$$x=x_{0}+v_{0x}\,t$$$$y=y_{0}+v_{0y}\,t - \frac{1}{2}g\,t^{2}$$Para graficar la trayectoria hacemos uso del módulo matplotlib.pyplot
In [89]:
%matplotlib inline
import math
import matplotlib.pyplot as plt
dt=0.01
# Velocidad inicial
vo=20
# Lista de ángulos
angulos = [20.0,30.0,40.0,45.0,55.0,60.0,65.0,70.0,80.0]
# Listas vacías que almacenaran los puntos
# x, y de las trayectorias
puntos_x=list()
puntos_y=list()
for angulo in angulos:
t=0.0
# Posición inicial
x=0.0
y=0.0
vx=vo*math.cos(math.radians(angulo))
vy=vo*math.sin(math.radians(angulo))
# Limpio lista de puntos para graficar
# Esto se hace en cada iteración del while
puntos_x.clear()
puntos_y.clear()
while y>=-0.01:
t=t+dt
x=x+vx*t
y=y+vy*t-(9.8/2)*t*t
# Añado las coordenadas a la lista
puntos_x.append(x)
puntos_y.append(y)
# Creo la gráfica en memoria
plt.plot(puntos_x,puntos_y,label=angulo)
plt.title("Movimiento Parabólico a distintos ángulos")
plt.xlabel("Posición horizontal(m)")
plt.ylabel("Altura (m)")
#plt.legend(title="Ángulo de tiro")
plt.show()
In [ ]: